package com.kakaxi.mybilibili.base;

import android.os.Bundle;
import android.os.Process;

import com.kakaxi.mybilibili.utils.ActivityStackManager;

/**
 * 进程活动,主要用于程序被后台回收进行重启操作
 * Created by kakaxi on 16/8/22.
 */

public abstract class ProcessActivity extends StackActivity {

    /** 是否开启进程管理 **/
    private boolean mManageProcess = true;

    /** 默认的储存信息类都为空 **/
    private boolean mSaveBundleIsNotNull = false;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        if (bundle != null) {
            // 如果被系统回收后会变为非空的
            mSaveBundleIsNotNull = true;
        }
    }

    @Override
    protected void onStart() {
        super.onStart();
        // 由于程序被后台回收,杀死进程进行重启程序操作
        // 当配置文件中启动标识为空,储存信息类非空、管理进程启动时进行重启操作
        if (false && mSaveBundleIsNotNull && mManageProcess) {
            ActivityStackManager.getInstance().popActivity();
            Process.killProcess(Process.myPid());
        }
    }

    /**
     * 设置是否打开进程管理
     *
     * @param manageProcess 是否打开进程管理
     */
    protected void setManageProcessEnalbe(boolean manageProcess) {
        mManageProcess = manageProcess;
    }

}
